namespace NAsserter
{
    public interface IBaseArgumentExpression
    {
        /// <summary>
        /// Creates an assertion for a new argument.
        /// </summary>
        /// <typeparam name="T">The type of the type argument.</typeparam>
        /// <param name="argument">The value of the new argument.</param>
        /// <param name="name">The name of the argument.</param>
        /// <returns>A root ArgumentExpressionsImpl for method chaining.</returns>
        IArgumentExpressions<T> Argument<T>(T argument, string name);
    }
}